package com.ssy.lingxi.logistics.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.logistics.entity.LogisticsOrder;

/**
 * 物流单同步数据服务类
 *
 * @author yzc
 * @version 2.0.0
 * @date 2021/1/26
 */
public interface ILogisticsOrderSyncDataService {

    /**
     * 新增物流单同步销售数据
     * @param logisticsOrder 物流单
     * @return 返回结果
     */
    Wrapper<?> addLogisticsSyncDataSales(LogisticsOrder logisticsOrder);

    /**
     * 确认物流单同步销售数据
     * @param loginUser 登录用户信息
     * @param logisticsOrder 物流单
     * @param status 状态
     * @return 返回结果
     */
    Wrapper<?> confirmLogisticsSyncDataSales(UserLoginCacheDTO loginUser, LogisticsOrder logisticsOrder, Integer status);

    /**
     * 新增物流单同步加工数据
     * @param logisticsOrder 物流单
     * @return 返回结果
     */
    Wrapper<?> addLogisticsSyncDataProduction(LogisticsOrder logisticsOrder);

    /**
     * 确认物流单同步加工数据
     * @param loginUser 登录用户信息
     * @param logisticsOrder 物流单
     * @param status 状态
     * @return 返回结果
     */
    Wrapper<?> confirmLogisticsSyncDataProduction(UserLoginCacheDTO loginUser, LogisticsOrder logisticsOrder, Integer status);

    /**
     * 新增物流单同步换货(退货发货)数据
     * @param loginUser 登录用户信息
     * @param logisticsOrder 物流单
     * @return 返回结果
     */
    Wrapper<?> addLogisticsSyncDataReplaceReturn(UserLoginCacheDTO loginUser, LogisticsOrder logisticsOrder);

    /**
     * 确认物流单同步换货(退货发货)数据
     * @param loginUser 登录用户信息
     * @param logisticsOrder 物流单
     * @param status 状态
     * @return 返回结果
     */
    Wrapper<?> confirmLogisticsSyncDataReplaceReturn(UserLoginCacheDTO loginUser, LogisticsOrder logisticsOrder, Integer status);

    /**
     * 新增物流单同步换货(换货发货)数据
     * @param loginUser 登录用户信息
     * @param logisticsOrder 物流单
     * @return 返回结果
     */
    Wrapper<?> addLogisticsSyncDataReplaceReplace(UserLoginCacheDTO loginUser, LogisticsOrder logisticsOrder);

    /**
     * 确认物流单同步换货(换货发货)数据
     * @param loginUser 登录用户信息
     * @param logisticsOrder 物流单
     * @param status 状态
     * @return 返回结果
     */
    Wrapper<?> confirmLogisticsSyncDataReplaceReplace(UserLoginCacheDTO loginUser, LogisticsOrder logisticsOrder, Integer status);

    /**
     * 新增物流单同步退货(退货发货)数据
     * @param loginUser 登录用户信息
     * @param logisticsOrder 物流单
     * @return 返回结果
     */
    Wrapper<?> addLogisticsSyncDataReturnReturn(UserLoginCacheDTO loginUser, LogisticsOrder logisticsOrder);

    /**
     * 确认物流单同步退货(退货发货)数据
     * @param loginUser 登录用户信息
     * @param logisticsOrder 物流单
     * @param status 状态
     * @return 返回结果
     */
    Wrapper<?> confirmLogisticsSyncDataReturnReturn(UserLoginCacheDTO loginUser, LogisticsOrder logisticsOrder, Integer status);
}
